<html>
<head><meta charset="utf-8"><title>error handling · t-libs · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/index.html">t-libs</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html">error handling</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="198957544"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/198957544" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#198957544">(May 27 2020 at 21:45)</a>:</h4>
<p>Hey so we were talking about lang team priorities today and error handling came up. <span class="user-mention" data-user-id="220273">@Jane Lusby</span> and I were just talking and she's expressed some interest in helping to lead a project group that would try to improve Rust's error handling story. I mention it here because, at least in the short term, I think this is largely a "libs" effort -- there might be interesting lang changes to be made but they're probably a bit further out, with the most <em>immediate</em> needs being (in my view) to help explain to people what the "best practices" are today (which probably involves external crates) and then trying to move some of that story into std so that it can be shared more broadly. </p>
<p>Anyway, I guess I'm asking whether e.g. <span class="user-mention" data-user-id="119235">@David Tolnay</span> you or others might be interested in helping to push along libs RFCs in this area if/when that became appropriate.</p>



<a name="198963140"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/198963140" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#198963140">(May 27 2020 at 22:46)</a>:</h4>
<p>I've been following <span class="user-mention" data-user-id="220273">@Jane Lusby</span>'s work on the <code>Error</code> trait, but mostly from the point of view of making the <code>Error</code> trait available to <code>no_std</code> core (by abstracting away the explicit dependency on backtraces).</p>



<a name="199013134"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199013134" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BurntSushi <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199013134">(May 28 2020 at 12:11)</a>:</h4>
<p>i think that sounds like a great idea! i'm very invested in Rust's error handling story and would love to participate. i'm not sure how much bandwidth i'll have for it, but i'd very much like to try and be involved.</p>



<a name="199045113"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199045113" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199045113">(May 28 2020 at 16:22)</a>:</h4>
<p>I've started working on a charter / proposal for the focus items of the project group that I'll post in a little bit</p>



<a name="199045159"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199045159" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199045159">(May 28 2020 at 16:23)</a>:</h4>
<p>right now it's just bullet points but once those are looking complete I'll write a full form proposal</p>



<a name="199045336"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199045336" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199045336">(May 28 2020 at 16:24)</a>:</h4>
<blockquote>
<p>I'm very invested in Rust's error handling story and would love to participate</p>
</blockquote>
<p>yess <span aria-label="heart" class="emoji emoji-2764" role="img" title="heart">:heart:</span>️</p>



<a name="199045432"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199045432" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199045432">(May 28 2020 at 16:25)</a>:</h4>
<p>Huzzah!</p>



<a name="199045443"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199045443" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199045443">(May 28 2020 at 16:25)</a>:</h4>
<p>This all sounds very encouraging</p>



<a name="199047163"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199047163" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199047163">(May 28 2020 at 16:39)</a>:</h4>
<p>here is the working copy for the project group charter <a href="https://hackmd.io/@2aetCAHHS5yPrDQIgqGo2Q/HyvHl9hiI">https://hackmd.io/@2aetCAHHS5yPrDQIgqGo2Q/HyvHl9hiI</a></p>



<a name="199047307"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199047307" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199047307">(May 28 2020 at 16:40)</a>:</h4>
<p>everyone should be able to edit</p>



<a name="199049731"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199049731" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199049731">(May 28 2020 at 17:00)</a>:</h4>
<p>I have this whole idea of what I think the ecosystem should look like but I'm not sure if I should put it in the charter so I'm gonna just dump an appreviated version here.</p>



<a name="199051151"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199051151" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199051151">(May 28 2020 at 17:10)</a>:</h4>
<p>To start we have <code>trait std::error::Error</code> and <code>struct std::error::Report</code> in std. </p>
<p><code>Error</code> does exactly what it does today, providing an interface to reporting errors and extracting context like backtraces relevant to reports.  std provides a custom derive similar to <code>thiserror</code> for reducing boilerplate so people don't neglect proper error handling because they don't want to write out impls by hand.</p>
<p><code>Report</code> fills the same role as <code>anyhow::Error</code> and <code>eyre::Report</code>.  It has a generic parameter that can store context relevant to the final report in it, like <code>Backtrace</code>, and which defines how the report is formatted. Std provides a default form of this context that just prints the top level error, its list of sources, and then the backtrace. </p>
<p>The 3rd party error handling ecosystem is reduced to libraries that provide custom contexts / panic handlers for consistent reporting and libraries that provide error handling utilities for improved ergonomics like snafu and fehler.</p>
<p>The report defining libraries provide custom context for <code>std::error::Report</code> and install custom panic handlers that capture similar context and produce similar reports to <code>std::error::Error</code>. This enables applications with consistent error reporting for both operational errors propogated via the Report type and programming errors reported via panics.</p>



<a name="199051381"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199051381" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199051381">(May 28 2020 at 17:12)</a>:</h4>
<p>All of this is heavily influenced by the work I've been doing on <code>eyre</code> and <code>color-eyre</code> in specific. if you want to see how this would look out check out the various images and examples in color-eyre and its implementation <a href="https://github.com/yaahc/color-eyre">https://github.com/yaahc/color-eyre</a></p>



<a name="199052219"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199052219" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> c-cube <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199052219">(May 28 2020 at 17:17)</a>:</h4>
<p>a standard <code>[derive(Error)]</code> (inspired by thiserror?) would be absolutely great and would make it easy for people to write their own error types, I think. I don't know what the policy re: adding new <code>derive</code> cases is.</p>



<a name="199053319"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199053319" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199053319">(May 28 2020 at 17:24)</a>:</h4>
<p>a lot of this work is focused around making it so error handling can easily be combined with instrumentation from <code>tracing</code>, specifically this entire body of work was inspired by wanting to capture <code>SpanTrace</code> types in anyhow. With the way <code>anyhow</code> is designed it is only possible to associate extra context like this with errors via the <code>.context</code> combinator, which inserts it into the error chain, which makes no sense for a type that is essentially a backtrace. I ended up solving this by forking anyhow to create <code>eyre</code> which adds the custom context parameter as mentioned above, and color-eyre is the most feature rich implementation of a custom context for integration with <code>eyre</code>.</p>
<p>Once all of this is done I want to move onto fixing the error trait for generic member access to allow tighter integration between errors and reporters, implement error return traces and build the integration with them into <code>std::report::Report</code> and the error derive to make it really easy to start using them, and then look into fixing reporting for termination so that panics on errors that weren't first turned into reports can give nicely formatted error reports as well.</p>



<a name="199053382"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199053382" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199053382">(May 28 2020 at 17:25)</a>:</h4>
<p><span class="user-mention" data-user-id="304512">@c-cube</span> its gonna be hard because this would be the first derive ever with custom attributes afaik</p>



<a name="199053395"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199053395" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199053395">(May 28 2020 at 17:25)</a>:</h4>
<p>in std*</p>



<a name="199053451"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199053451" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199053451">(May 28 2020 at 17:25)</a>:</h4>
<p>oh and also once the generic member access is done I think we should move error into core, prior to doing the error return traces or termination report consistency changes</p>



<a name="199054078"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199054078" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> c-cube <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199054078">(May 28 2020 at 17:28)</a>:</h4>
<p><span class="user-mention silent" data-user-id="220273">Jane Lusby</span> <a href="#narrow/stream/219381-t-libs/topic/error.20handling/near/199053382">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="304512">c-cube</span> its gonna be hard because this would be the first derive ever with custom attributes afaik</p>
</blockquote>
<p>Because you'd really need custom attributes for the <code>Display</code> instance? I can see why that'd be a problem.</p>



<a name="199054410"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199054410" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199054410">(May 28 2020 at 17:31)</a>:</h4>
<p>yea and from impls and transparent errors</p>



<a name="199054499"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199054499" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199054499">(May 28 2020 at 17:31)</a>:</h4>
<p>I expect figuring out which exact subsets of the apis of the various error derive crates and error reporting crates we want to include will be one of the more fun (painful) parts of the process</p>



<a name="199059129"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199059129" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BurntSushi <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199059129">(May 28 2020 at 18:08)</a>:</h4>
<p><span class="user-mention" data-user-id="220273">@Jane Lusby</span> thanks for organizing your thoughts! how do i add comments to your hackmd document? (like a google doc)</p>



<a name="199059215"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199059215" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199059215">(May 28 2020 at 18:08)</a>:</h4>
<p>i think you just need to log in</p>



<a name="199059229"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199059229" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199059229">(May 28 2020 at 18:08)</a>:</h4>
<p>i use my github account to login fwiw</p>



<a name="199059948"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199059948" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BurntSushi <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199059948">(May 28 2020 at 18:11)</a>:</h4>
<p>i see, thanks. i am logged in, and i see i can edit the document. but i don't see how to add comments. i don't necessarily want to change things you wrote, i want to comment on them. it looks i can leave comments on the document as a whole, but not on specific text. am i still missing something or is this a limitation of hackmd?</p>



<a name="199059978"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199059978" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199059978">(May 28 2020 at 18:11)</a>:</h4>
<p><span class="user-mention" data-user-id="220273">@Jane Lusby</span> fwiw I think the "custom attributes" bit is not hard implementation wise, and I think anyhow and similar crates have pretty closely established more than "good enough" syntax for it -- I would not personally see it as a roadblock to have a derive similar to thiserror in core/std, perhaps with some bits unstable initially and then scaling to full flexibility over time perhaps</p>



<a name="199060062"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199060062" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BurntSushi <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199060062">(May 28 2020 at 18:12)</a>:</h4>
<p>ah i think i see it now. subtle.</p>



<a name="199060068"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199060068" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199060068">(May 28 2020 at 18:12)</a>:</h4>
<p><span class="user-mention" data-user-id="222471">@BurntSushi</span> I just added one on a random line</p>



<a name="199060077"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199060077" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199060077">(May 28 2020 at 18:12)</a>:</h4>
<p><span class="user-mention" data-user-id="222471">@BurntSushi</span> are you viewing it with the markdown preview? I think if you click to right of the line you want to comment on it shows a comment icon</p>



<a name="199060167"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199060167" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199060167">(May 28 2020 at 18:13)</a>:</h4>
<p>~</p>



<a name="199060314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199060314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199060314">(May 28 2020 at 18:14)</a>:</h4>
<p>annoyingly i cannot get it to show the icon in the screenshot but where my mouse is in this pic shows where I would click to add a comment</p>
<p><a href="/user_uploads/4715/Zbp8g3adbKQjJqq_a1Tux7fy/Screenshot-from-2020-05-28-11-14-03.png">Screenshot-from-2020-05-28-11-14-03.png</a></p>
<div class="message_inline_image"><a href="/user_uploads/4715/Zbp8g3adbKQjJqq_a1Tux7fy/Screenshot-from-2020-05-28-11-14-03.png" title="Screenshot-from-2020-05-28-11-14-03.png"><img src="/user_uploads/4715/Zbp8g3adbKQjJqq_a1Tux7fy/Screenshot-from-2020-05-28-11-14-03.png"></a></div>



<a name="199061061"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199061061" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BurntSushi <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199061061">(May 28 2020 at 18:19)</a>:</h4>
<p>i don't think i know what "generic member access" means. is it described somewhere? i think i have a good guess as to what it is, but i'm not connecting the dots as far as why it's required for moving <code>Error</code> to core.</p>



<a name="199061431"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199061431" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199061431">(May 28 2020 at 18:21)</a>:</h4>
<p>yes, theres an RFC for it</p>



<a name="199061447"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199061447" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199061447">(May 28 2020 at 18:22)</a>:</h4>
<p>sec let me link it</p>



<a name="199061607"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199061607" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199061607">(May 28 2020 at 18:22)</a>:</h4>
<p><span class="user-mention" data-user-id="222471">@BurntSushi</span> <a href="https://github.com/rust-lang/rfcs/pull/2895">https://github.com/rust-lang/rfcs/pull/2895</a></p>
<p>it is essentially a generic object safe version of <code>fn bactrace</code> and <code>fn source</code></p>



<a name="199061892"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199061892" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199061892">(May 28 2020 at 18:24)</a>:</h4>
<p>and its necessary because it makes it so we don't have to put <code>fn backtrace</code> on the error trait which makes it easier to move to core, though it's not the only problem so we'd probably need to put some hack to allow std to impl the downcast fn for the error trait even though its defined in core</p>



<a name="199062003"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199062003" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199062003">(May 28 2020 at 18:24)</a>:</h4>
<p>though my understanding is that the eventual plan is to merge core and std, but i think its important to get error into core sooner than whenever that happens</p>



<a name="199062302"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199062302" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BurntSushi <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199062302">(May 28 2020 at 18:26)</a>:</h4>
<p>i think your doc looks like a good start! i'm going to read your generic member access RFC and take a look at eyre, since i don't think i'm groking everything around traces.</p>



<a name="199062427"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199062427" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BurntSushi <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199062427">(May 28 2020 at 18:27)</a>:</h4>
<p>also, i'd like to CC stakeholders that I know of, but we should CC more folks if they exist: <span class="user-mention" data-user-id="119235">@David Tolnay</span> <span class="user-mention" data-user-id="116155">@Jake Goulding</span></p>



<a name="199062469"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199062469" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BurntSushi <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199062469">(May 28 2020 at 18:27)</a>:</h4>
<p>i want to CC withoutboats too, but i don't know their nick on zulip.</p>



<a name="199062951"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199062951" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199062951">(May 28 2020 at 18:30)</a>:</h4>
<p><span class="user-mention" data-user-id="222471">@BurntSushi</span> check out color-eyre when you're checking out eyre, it does a much better job at leveraging the custom context stuff than the parts you'll find within eyre itself</p>



<a name="199063002"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199063002" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BurntSushi <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199063002">(May 28 2020 at 18:31)</a>:</h4>
<p>gotya, will do!</p>



<a name="199064582"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199064582" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199064582">(May 28 2020 at 18:44)</a>:</h4>
<p>cc <span class="user-mention" data-user-id="256759">@boats</span> I believe for withoutboats</p>



<a name="199064588"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199064588" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199064588">(May 28 2020 at 18:44)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> theres a comment thread near the bottom of  the hackmd link from above with concerns about the interaction with specialization for one of the items i've proposed we address that <span class="user-mention" data-user-id="222471">@BurntSushi</span> noted could probably receive a summary from the lang team to help us figure out whether or not it is in scope for the project group, can you take a look at that thread or forward it to whoever is best equiped to provide an answer?</p>



<a name="199064720"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199064720" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BurntSushi <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199064720">(May 28 2020 at 18:45)</a>:</h4>
<p><span class="user-mention" data-user-id="220273">@Jane Lusby</span> oh, i meant that _we_ should provide a summary of the question to the lang team. but yeah, maybe that comment thread is enough.</p>



<a name="199064741"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199064741" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199064741">(May 28 2020 at 18:45)</a>:</h4>
<p>oooh</p>



<a name="199064927"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199064927" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199064927">(May 28 2020 at 18:47)</a>:</h4>
<p>I think the thread is probably fine, but if not I will write a full summary and link to the proof of concept repo I have that implements error return traces using min_specialization</p>



<a name="199065260"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199065260" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BurntSushi <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199065260">(May 28 2020 at 18:49)</a>:</h4>
<p>aye. yeah, basically my high level thing here is "make it easy for them to respond." :)</p>



<a name="199081974"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199081974" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199081974">(May 28 2020 at 20:26)</a>:</h4>
<p><span class="user-mention silent" data-user-id="220273">Jane Lusby</span> <a href="#narrow/stream/219381-t-libs/topic/error.20handling/near/199051151">said</a>:</p>
<blockquote>
<p><code>Report</code> fills the same role as <code>anyhow::Error</code> and <code>eyre::Report</code>.  It has a generic parameter that can store context relevant to the final report in it, like <code>Backtrace</code>, and which defines how the report is formatted. Std provides a default form of this context that just prints the top level error, its list of sources, and then the backtrace. </p>
</blockquote>
<p>Ah, <em>that</em> explains why <code>Report</code> carries things like CLI error codes or HTTP error codes! <span aria-label="light bulb" class="emoji emoji-1f4a1" role="img" title="light bulb">:light_bulb:</span></p>



<a name="199082125"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199082125" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199082125">(May 28 2020 at 20:27)</a>:</h4>
<p>And also, the connotation of <code>Report</code> gives people a hint for when they should use it and when they should use <code>thiserror</code>-style handling.</p>



<a name="199082186"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199082186" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199082186">(May 28 2020 at 20:28)</a>:</h4>
<p>"Use <code>Report</code> when the only thing you'll do with the error is report it"</p>



<a name="199082257"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199082257" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199082257">(May 28 2020 at 20:28)</a>:</h4>
<p><span class="user-mention" data-user-id="220273">@Jane Lusby</span> Am I interpreting that correctly?</p>



<a name="199082327"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199082327" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199082327">(May 28 2020 at 20:29)</a>:</h4>
<p>exactly</p>



<a name="199082431"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199082431" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199082431">(May 28 2020 at 20:30)</a>:</h4>
<p>I like this plan very much.</p>



<a name="199082456"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199082456" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199082456">(May 28 2020 at 20:30)</a>:</h4>
<p><span aria-label="heart" class="emoji emoji-2764" role="img" title="heart">:heart:</span></p>



<a name="199082494"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199082494" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199082494">(May 28 2020 at 20:30)</a>:</h4>
<p>What would you call a <code>Result&lt;T, Report&gt;</code>? Do you have a common name for that in mind?</p>



<a name="199082591"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199082591" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199082591">(May 28 2020 at 20:31)</a>:</h4>
<p>my plan is to just leave that the way it is as far as std is concerned</p>



<a name="199082662"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199082662" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199082662">(May 28 2020 at 20:32)</a>:</h4>
<p>I'm asking because I expect to name that type many thousands of times, and I've found <code>anyhow::Result&lt;T&gt;</code> quite useful for that purpose.</p>



<a name="199082685"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199082685" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199082685">(May 28 2020 at 20:32)</a>:</h4>
<p>the libraries that provide the panic / error handers (renaming this from custom context) would be the ones that provide those aliases</p>



<a name="199082713"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199082713" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199082713">(May 28 2020 at 20:32)</a>:</h4>
<p>So even if we <em>don't</em> provide a standard alias for it, people will alias it in their programs, which then means it might be helpful if we have a name in mind that is "conventional".</p>



<a name="199082743"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199082743" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199082743">(May 28 2020 at 20:33)</a>:</h4>
<p>because really in std <code>Result&lt;T, Report&gt;</code> is actually <code>Result&lt;T, Report&lt;C = BacktraceHandler&gt;&gt;</code> or something</p>



<a name="199082773"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199082773" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199082773">(May 28 2020 at 20:33)</a>:</h4>
<p>Oh, interesting.</p>



<a name="199082864"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199082864" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199082864">(May 28 2020 at 20:34)</a>:</h4>
<p>I'm assuming it'll be possible to build without backtrace support and the backtrace data will disappear?</p>



<a name="199083642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199083642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199083642">(May 28 2020 at 20:40)</a>:</h4>
<p>yea, im assuming that the default provided backtracehandler in std for the report type would conditionally compile with a backtrace</p>



<a name="199083648"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199083648" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199083648">(May 28 2020 at 20:40)</a>:</h4>
<p>thats a good point</p>



<a name="199083654"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199083654" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199083654">(May 28 2020 at 20:40)</a>:</h4>
<p>maybe it shouldn't be called backtracehandler</p>



<a name="199083676"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199083676" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199083676">(May 28 2020 at 20:41)</a>:</h4>
<p>i call this <code>DefaultContext</code> in eyre rn</p>



<a name="199083710"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199083710" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199083710">(May 28 2020 at 20:41)</a>:</h4>
<p>but I want to rework the terminology to be consistent with panic handler's</p>



<a name="199083771"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199083771" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199083771">(May 28 2020 at 20:41)</a>:</h4>
<p>the name of the context type is I think important in the same way that the name of Report is important</p>



<a name="199083799"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199083799" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199083799">(May 28 2020 at 20:41)</a>:</h4>
<p>the difference is I feel like I've already come up with a good name for Report but not for the context <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>



<a name="199083888"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199083888" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199083888">(May 28 2020 at 20:42)</a>:</h4>
<p>And the default context is part of what supports things like "the error happened while opening this file"?</p>



<a name="199083963"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199083963" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199083963">(May 28 2020 at 20:43)</a>:</h4>
<p>(Or, in <code>anyhow</code> terms, <code>.with_context(|| format!("Error opening file {}", filename))</code>)</p>



<a name="199083997"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199083997" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199083997">(May 28 2020 at 20:43)</a>:</h4>
<p>oh, no this would be a feature of the Report type</p>



<a name="199084014"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084014" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084014">(May 28 2020 at 20:43)</a>:</h4>
<p>or maybe on Result itself</p>



<a name="199084023"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084023" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084023">(May 28 2020 at 20:43)</a>:</h4>
<p>i dont know if we'd still want to use an extension trait if we're part of std</p>



<a name="199084029"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084029" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084029">(May 28 2020 at 20:43)</a>:</h4>
<p>Where does that data get stored?</p>



<a name="199084045"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084045" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084045">(May 28 2020 at 20:43)</a>:</h4>
<p>its a new error type</p>



<a name="199084110"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084110" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084110">(May 28 2020 at 20:44)</a>:</h4>
<p>in eyre this function is called <code>wrap_err</code> and <code>wrap_err_with</code></p>



<a name="199084118"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084118" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084118">(May 28 2020 at 20:44)</a>:</h4>
<p>i think</p>



<a name="199084119"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084119" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084119">(May 28 2020 at 20:44)</a>:</h4>
<p>/me nods</p>



<a name="199084121"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084121" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084121">(May 28 2020 at 20:44)</a>:</h4>
<p>it might be with_wrap_err</p>



<a name="199084163"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084163" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084163">(May 28 2020 at 20:44)</a>:</h4>
<p>I'm trying to understand the relationship between the types here.</p>



<a name="199084169"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084169" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084169">(May 28 2020 at 20:44)</a>:</h4>
<p>the context is where you'd shove things that aren't errors</p>



<a name="199084193"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084193" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084193">(May 28 2020 at 20:44)</a>:</h4>
<p>so like in color-eyre theres a concept of Report Sections</p>



<a name="199084199"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084199" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084199">(May 28 2020 at 20:44)</a>:</h4>
<p>which is just any display type</p>



<a name="199084215"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084215" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084215">(May 28 2020 at 20:44)</a>:</h4>
<p>and it stores that as a vec in the Context type</p>



<a name="199084221"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084221" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084221">(May 28 2020 at 20:44)</a>:</h4>
<p>So now I have three questions...</p>



<a name="199084260"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084260" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084260">(May 28 2020 at 20:45)</a>:</h4>
<p>Ah, that answers one of them.</p>



<a name="199084323"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084323" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084323">(May 28 2020 at 20:45)</a>:</h4>
<p>So, Report would have the method to add information to an error, and that would get stored in the Context somehow.</p>



<a name="199084388"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084388" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084388">(May 28 2020 at 20:46)</a>:</h4>
<p>Report provides a fn to get a reference or a mutable reference to its context</p>



<a name="199084414"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084414" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084414">(May 28 2020 at 20:46)</a>:</h4>
<p>handler libraries would usually impl an extension trait</p>



<a name="199084447"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084447" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084447">(May 28 2020 at 20:46)</a>:</h4>
<p>which provides functions that convert the error into a report if its not already one</p>



<a name="199084456"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084456" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084456">(May 28 2020 at 20:46)</a>:</h4>
<p>and then grab the context mutably</p>



<a name="199084469"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084469" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084469">(May 28 2020 at 20:46)</a>:</h4>
<p>and call whatever functions it exposes to insert the data</p>



<a name="199084498"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084498" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084498">(May 28 2020 at 20:47)</a>:</h4>
<p>What would <code>DefaultContext</code> (or whatever it gets called) provide in that regard?</p>



<a name="199084518"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084518" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084518">(May 28 2020 at 20:47)</a>:</h4>
<p>nothing</p>



<a name="199084537"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084537" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084537">(May 28 2020 at 20:47)</a>:</h4>
<p>Um.</p>



<a name="199084549"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084549" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084549">(May 28 2020 at 20:47)</a>:</h4>
<p>the default context is planned to be based on anyhow</p>



<a name="199084562"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084562" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084562">(May 28 2020 at 20:47)</a>:</h4>
<p>so it wont provide extra stuff in the context</p>



<a name="199084576"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084576" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084576">(May 28 2020 at 20:47)</a>:</h4>
<p>/me is very confused now.</p>



<a name="199084586"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084586" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084586">(May 28 2020 at 20:47)</a>:</h4>
<p>it will only provide <code>wrap_err</code> for inserting new errors into the chain</p>



<a name="199084595"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084595" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084595">(May 28 2020 at 20:47)</a>:</h4>
<p>Ah.</p>



<a name="199084605"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084605" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084605">(May 28 2020 at 20:47)</a>:</h4>
<p>so <code>context</code> on anyhow confusingly named in my opinion</p>



<a name="199084683"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084683" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084683">(May 28 2020 at 20:48)</a>:</h4>
<p>and i dont want to bring that terminology along when it or something like it is upstreamed</p>



<a name="199084695"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084695" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084695">(May 28 2020 at 20:48)</a>:</h4>
<p>(That's not a problem.)</p>



<a name="199084734"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084734" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084734">(May 28 2020 at 20:48)</a>:</h4>
<p>OK, so the default Context type available in Report by default <em>will</em> support attaching extra Error values to an existing Error.</p>



<a name="199084744"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084744" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084744">(May 28 2020 at 20:48)</a>:</h4>
<p>YES</p>



<a name="199084746"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084746" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084746">(May 28 2020 at 20:48)</a>:</h4>
<p>oops</p>



<a name="199084750"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084750" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084750">(May 28 2020 at 20:48)</a>:</h4>
<p>capslocks</p>



<a name="199084751"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084751" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084751">(May 28 2020 at 20:48)</a>:</h4>
<p>lol</p>



<a name="199084753"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084753" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084753">(May 28 2020 at 20:48)</a>:</h4>
<p>yes</p>



<a name="199084768"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084768" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084768">(May 28 2020 at 20:49)</a>:</h4>
<p>Hey, that <em>is</em> a thing to shout about. ;)</p>



<a name="199084778"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084778" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084778">(May 28 2020 at 20:49)</a>:</h4>
<p>heh</p>



<a name="199084790"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084790" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084790">(May 28 2020 at 20:49)</a>:</h4>
<p>but yea the report type itself provides helpers for construction of adhoc errors</p>



<a name="199084801"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084801" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084801">(May 28 2020 at 20:49)</a>:</h4>
<p>in anyhow this is context</p>



<a name="199084805"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084805" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084805">(May 28 2020 at 20:49)</a>:</h4>
<p>in eyre this is wrap_err</p>



<a name="199084816"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084816" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084816">(May 28 2020 at 20:49)</a>:</h4>
<p>in std::error::Report its ???</p>



<a name="199084817"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084817" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084817">(May 28 2020 at 20:49)</a>:</h4>
<p>But it wouldn't provide the ability to attach information that isn't an error?</p>



<a name="199084844"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084844" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084844">(May 28 2020 at 20:49)</a>:</h4>
<p>not in std, not by default</p>



<a name="199084849"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084849" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084849">(May 28 2020 at 20:49)</a>:</h4>
<p>i mean we can put any features we want</p>



<a name="199084875"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084875" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084875">(May 28 2020 at 20:50)</a>:</h4>
<p>we could include the sections concept</p>



<a name="199084896"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084896" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084896">(May 28 2020 at 20:50)</a>:</h4>
<p>that i think is a really good one</p>



<a name="199084904"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084904" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084904">(May 28 2020 at 20:50)</a>:</h4>
<p>So, if I have an <code>io::Error</code> because I couldn't open a file, how do I attach the filename?</p>



<a name="199084913"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084913" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084913">(May 28 2020 at 20:50)</a>:</h4>
<p>I think that's an important use case to handle.</p>



<a name="199084926"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084926" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084926">(May 28 2020 at 20:50)</a>:</h4>
<p>okay</p>



<a name="199084941"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084941" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084941">(May 28 2020 at 20:50)</a>:</h4>
<p>I'd go as far as saying that if there's a way we can do it without excess overhead, I'd love to have the default file functions attach that information. :)</p>



<a name="199084946"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084946" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084946">(May 28 2020 at 20:50)</a>:</h4>
<p>so i would say we should support custom sections in the default error handler type</p>



<a name="199084968"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084968" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084968">(May 28 2020 at 20:50)</a>:</h4>
<p>so the idea would be you just provide a string</p>



<a name="199084979"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199084979" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199084979">(May 28 2020 at 20:51)</a>:</h4>
<p>let me show you the relevant api in color-eyre that would handle this</p>



<a name="199085064"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199085064" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199085064">(May 28 2020 at 20:52)</a>:</h4>
<p><a href="https://github.com/yaahc/color-eyre/blob/master/examples/custom_section.rs">https://github.com/yaahc/color-eyre/blob/master/examples/custom_section.rs</a></p>



<a name="199085115"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199085115" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199085115">(May 28 2020 at 20:52)</a>:</h4>
<p>so this one attaches stderr and stdout to an error report</p>



<a name="199085141"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199085141" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199085141">(May 28 2020 at 20:52)</a>:</h4>
<p>my intention was to encourage this kinda behavior to still exist as 3rd party libraries</p>



<a name="199085171"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199085171" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199085171">(May 28 2020 at 20:52)</a>:</h4>
<p>but if we think this should be in std its easy and I think i have a good design for it already</p>



<a name="199085212"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199085212" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199085212">(May 28 2020 at 20:53)</a>:</h4>
<p>I don't know that we need <em>that</em> level of flexibility in std.</p>



<a name="199085248"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199085248" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199085248">(May 28 2020 at 20:53)</a>:</h4>
<p>so you can always make a higher level error still</p>



<a name="199085255"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199085255" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199085255">(May 28 2020 at 20:53)</a>:</h4>
<p>But attaching strings seems good.</p>



<a name="199085266"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199085266" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199085266">(May 28 2020 at 20:53)</a>:</h4>
<p>like an adhoc error the same way you do in anyhow</p>



<a name="199085332"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199085332" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199085332">(May 28 2020 at 20:54)</a>:</h4>
<p>my plan is basically to have the default handler in std::error::Report exactly mimic the features of anyhow</p>



<a name="199085334"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199085334" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199085334">(May 28 2020 at 20:54)</a>:</h4>
<p>Distinguishing messages for stdout and messages for stderr seems more specific to a CLI-specialized context type that could exist in the ecosystem.</p>



<a name="199085337"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199085337" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199085337">(May 28 2020 at 20:54)</a>:</h4>
<p>just slightly renamed</p>



<a name="199085376"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199085376" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199085376">(May 28 2020 at 20:54)</a>:</h4>
<p>aah yea but that API isn't related to stderr / stdout</p>



<a name="199085390"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199085390" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199085390">(May 28 2020 at 20:54)</a>:</h4>
<p>for example in your usecase it would be...</p>



<a name="199085485"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199085485" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199085485">(May 28 2020 at 20:55)</a>:</h4>
<p>read_to_string(path).map_err(Report::from).with_section(|| "Context:".body(format!("attempting to open {}", path)))</p>



<a name="199085514"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199085514" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199085514">(May 28 2020 at 20:55)</a>:</h4>
<p>though this is some automatic indenting stuff</p>



<a name="199085532"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199085532" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199085532">(May 28 2020 at 20:55)</a>:</h4>
<p>you would probably just want to use wrap_err in this case</p>



<a name="199085533"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199085533" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199085533">(May 28 2020 at 20:56)</a>:</h4>
<p>like</p>



<a name="199085578"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199085578" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199085578">(May 28 2020 at 20:56)</a>:</h4>
<p>if you're happy with anyhow's support for this then we're already covered</p>



<a name="199085642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199085642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199085642">(May 28 2020 at 20:56)</a>:</h4>
<p>i think it might be good to include the section stuff but not the section extension stuff</p>



<a name="199085663"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199085663" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199085663">(May 28 2020 at 20:57)</a>:</h4>
<p>so you can just associate display types with errors as sections</p>



<a name="199085680"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199085680" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199085680">(May 28 2020 at 20:57)</a>:</h4>
<p>and then third party libraries can provide the cool buidler apis for indenting stuff and whatnot</p>



<a name="199086138"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199086138" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199086138">(May 28 2020 at 21:01)</a>:</h4>
<p>What does <code>"Context:".body</code> mean? I'm trying to understand what a "section" is, and I'm hoping for something not too stringly-typed.</p>



<a name="199086558"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199086558" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199086558">(May 28 2020 at 21:05)</a>:</h4>
<p>Also, would <code>wrap_err</code> take care of the <code>Report::from</code> for me?</p>



<a name="199093092"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199093092" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199093092">(May 28 2020 at 22:17)</a>:</h4>
<p>oh yea, wrap_err has a <code>Into&lt;Report&gt;</code> bound</p>



<a name="199093105"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199093105" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199093105">(May 28 2020 at 22:17)</a>:</h4>
<p>so pretend i didnt put that there</p>



<a name="199093275"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199093275" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199093275">(May 28 2020 at 22:19)</a>:</h4>
<p>This is a bit more complicated because <code>color-eyre</code>'s context has multiple section kinds because it supports additional error msg sections and help text sections in addition to custom ones</p>



<a name="199093278"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199093278" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199093278">(May 28 2020 at 22:19)</a>:</h4>
<p><a href="https://github.com/yaahc/color-eyre/blob/master/src/section/mod.rs#L158">https://github.com/yaahc/color-eyre/blob/master/src/section/mod.rs#L158</a></p>



<a name="199093367"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199093367" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199093367">(May 28 2020 at 22:20)</a>:</h4>
<p>but you can just imagine that <code>"Context:".body</code> is just an extension trait defined by some 3rd party library for constructing a <code>Display</code> type</p>



<a name="199093392"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199093392" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199093392">(May 28 2020 at 22:20)</a>:</h4>
<p>theres no reason the body needs to be part of the implementation actually</p>



<a name="199093406"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199093406" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199093406">(May 28 2020 at 22:20)</a>:</h4>
<p>and now I think im going to change how thats implemented in color-eyre</p>



<a name="199093418"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199093418" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199093418">(May 28 2020 at 22:21)</a>:</h4>
<p>thankgod I didn't make the release with the sections in it yet <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>



<a name="199096361"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199096361" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> boats <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199096361">(May 28 2020 at 22:57)</a>:</h4>
<p>I don't have enough bandwidth to participate in this group, but I can express my initial disposition.</p>
<p>Adding something like <code>anyhow::Error</code> to std as basically just more legible and slightly optimized version of an error trait object seems good. On the other hand, I think we are not nearly as certain about things like the shape of things like error chaining (I'm talking about things like the Result::context method). That sort of functionality can be backwards compatibly added if we ever have it nailed down.</p>
<p>eyre's addition of a different sort of "context" parameter is interesting and I'm curious to see how it develops. But I don't think it has been in use for enough time or by enough users to consider adding this kind of context parameter and trait to std just now. If it does prove out in the ecosystem, a defaulted parameter can be added backwards compatibly also.</p>
<p>In general, I feel these kinds of big picture concerns about structuring error handling across an application are hard to generalize to the many different kinds of applications that people write.</p>



<a name="199096462"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199096462" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199096462">(May 28 2020 at 22:58)</a>:</h4>
<p>if we want to add it backwards compatibly we can't provide a <code>format_err!</code> macro</p>



<a name="199096474"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199096474" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> boats <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199096474">(May 28 2020 at 22:58)</a>:</h4>
<p>Basically I'm in favor of continuing the strategy we started with with the error revamp RFC: piecemeal adoption of only the most stable and certain aspects of the error handling libraries into std, expect that the full picture for any application would still involve outside libraries.</p>



<a name="199097043"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199097043" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199097043">(May 28 2020 at 23:05)</a>:</h4>
<blockquote>
<p>But I don't think it has been in use for enough time or by enough users to consider adding this kind of context parameter and trait to std just now. If it does prove out in the ecosystem, a defaulted parameter can be added backwards compatibly also.</p>
</blockquote>



<a name="199097138"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199097138" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199097138">(May 28 2020 at 23:06)</a>:</h4>
<p>I'm not sure I agree with this reasoning, it seems to me that this would have the effect of pushing people away from even trying out the context stuff because they would see std adopting anyhow and specifically not adopting eyre. this would have the effect of making it harder to even gain adoption on eyre and prove it in the first place to get it upstreamed into std</p>



<a name="199097148"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199097148" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199097148">(May 28 2020 at 23:06)</a>:</h4>
<p>if we're worried about the context then we shouldn't even bother upstreaming an error reporting type yet</p>



<a name="199097188"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199097188" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199097188">(May 28 2020 at 23:07)</a>:</h4>
<p>i'd prefer to just try out the context though, it will be behind a feature flag and ppl will try it out on nightly and if it ends up being burdensome we can always back it out without violating stability guarantees</p>



<a name="199097305"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199097305" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199097305">(May 28 2020 at 23:08)</a>:</h4>
<p>It seems like maybe at least some of the concern about "well std doesn't do it" would be satisfied by, say, making the context bits unstable for longer but still having them in std</p>



<a name="199097312"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199097312" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199097312">(May 28 2020 at 23:09)</a>:</h4>
<p>(and we could always rip them out)</p>



<a name="199097323"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199097323" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199097323">(May 28 2020 at 23:09)</a>:</h4>
<p>can you  have a generic parameter thats only conditionally available?</p>



<a name="199097485"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199097485" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199097485">(May 28 2020 at 23:12)</a>:</h4>
<p>hm perhaps no, but if that means that we're stuck with a defaulted generic ~forever "shrug" that doesn't seem horrible if people basically never see it</p>



<a name="199097659"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199097659" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> boats <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199097659">(May 28 2020 at 23:15)</a>:</h4>
<p>It's our standard policy that new APIs develop in the ecosystem for a very long time before they end up in std.</p>



<a name="199097764"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199097764" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199097764">(May 28 2020 at 23:16)</a>:</h4>
<p>that's fair, but I think that just means we need to remove the error reporting type stuff from the list of items to handle by the project group rather than just continuing with stabilizing a design that is actively disputed in the ecosystem</p>



<a name="199097893"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199097893" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> boats <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199097893">(May 28 2020 at 23:19)</a>:</h4>
<p>Sure, I wouldn't frame <code>anyhow::Error</code> as "an error reporting type." The <code>Error</code> trait is designed around being used as a trait object, but <code>Box&lt;dyn Error + Send + Sync&gt;</code> is an unwieldy error. Guaranteeing a backtrace was just gravy.</p>



<a name="199097938"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199097938" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> boats <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199097938">(May 28 2020 at 23:20)</a>:</h4>
<p>I think being a single word is actually the more important aspect of a custom type over the standard trait object</p>



<a name="199097974"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199097974" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> boats <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199097974">(May 28 2020 at 23:21)</a>:</h4>
<p>I think Rust could use a lot better tools for diagnostics and eyre is maybe a path toward that, but I don't think we are ready to have a diagnostics story in std. So I'd agree that that seems out of scope for a working group focused on improving std.</p>



<a name="199098105"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199098105" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> boats <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199098105">(May 28 2020 at 23:23)</a>:</h4>
<p>(To be explicit, when I say it was "just gravy" I mean I made that choice in failure only because I was fishing for a reason to tell people to use it over creating a custom error enum! The atmosphere in the community was sharply against anything which allocated when it could have been a stack enum)</p>



<a name="199098639"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199098639" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199098639">(May 28 2020 at 23:34)</a>:</h4>
<p>Having the ability to extend it to support contexts in the future is more critical than supporting contexts in the first version.</p>



<a name="199098701"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199098701" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199098701">(May 28 2020 at 23:34)</a>:</h4>
<p>I wouldn't want us to end up with a type in <code>std</code> that will <em>never</em> be able to support adding things like "the file this io::Error is about".</p>



<a name="199099008"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199099008" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199099008">(May 28 2020 at 23:39)</a>:</h4>
<blockquote>
<p>Sure, I wouldn't frame anyhow::Error as "an error reporting type."</p>
</blockquote>
<p>In my experience people have a much easier time learning when to use anyhow vs an error enum when its taught in the language of handling vs reporting</p>



<a name="199099081"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199099081" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199099081">(May 28 2020 at 23:40)</a>:</h4>
<p>so to me, even if anyhow wasnt designed as a reporting type, it ended up being one, in that its primary purpose is to just store an open set of errors and print it to the screen later.</p>



<a name="199214187"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199214187" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199214187">(May 29 2020 at 21:24)</a>:</h4>
<p>okay I removed the item saying to add an error reporting type to std and replaced with with new section for evaluating the options for error reporter types that we could base a future std implementation on. I'm not sure if project groups should be handling research like that but I think it would be valuable.</p>



<a name="199214276"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199214276" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199214276">(May 29 2020 at 21:25)</a>:</h4>
<p>Also, assumings its okay with the authors I would love to see the primary candidates to base the future std error reporting type on moved into rust-lang-nursery, that way we can clearly communicate that "these are the crates being evaluated as the future for error handling, please focus on them"</p>



<a name="199214386"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199214386" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199214386">(May 29 2020 at 21:26)</a>:</h4>
<p>or anything else that gets the same message across so people can start consolidating on libraries that are as similar as possible to the future std reporting type, that way the ecosystem turmoil is minimized when that eventually happens.</p>



<a name="199214440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199214440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199214440">(May 29 2020 at 21:26)</a>:</h4>
<p>I suspect it might cause more churn and controversy to move multiple competing libraries into the nursery (and I was under the impression that the nursery was being deprecated).</p>



<a name="199214465"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199214465" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199214465">(May 29 2020 at 21:26)</a>:</h4>
<p>oh, i didnt know that, nvm then</p>



<a name="199214474"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199214474" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199214474">(May 29 2020 at 21:27)</a>:</h4>
<p>We could list the libraries that are experimentally trying to build atop the new std type(s).</p>



<a name="199214494"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199214494" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199214494">(May 29 2020 at 21:27)</a>:</h4>
<p>where would you want to list them?</p>



<a name="199214950"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199214950" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199214950">(May 29 2020 at 21:32)</a>:</h4>
<p>The README for the project group that was doing this work.</p>



<a name="199216324"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199216324" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199216324">(May 29 2020 at 21:46)</a>:</h4>
<p>sounds good</p>



<a name="199227236"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199227236" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199227236">(May 30 2020 at 00:12)</a>:</h4>
<p>I think it'd be interesting to try doin the evaluaton in some sort of structured way. It's something I've thought about in other contexts -- eg., have a place for people to submit experience reports or other things, and maybe have some updates and periodic reports about experiments.</p>



<a name="199231948"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199231948" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199231948">(May 30 2020 at 01:55)</a>:</h4>
<p>That sounds like a great idea</p>



<a name="199232008"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199232008" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199232008">(May 30 2020 at 01:56)</a>:</h4>
<p>i've been informally reaching out to ppl on twitter for this kinda thing, reviewing PR's to switch projects to color-eyre+eyre, that kinda thing</p>



<a name="199232013"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/199232013" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#199232013">(May 30 2020 at 01:56)</a>:</h4>
<p>having an official channel for that information to be funnelled in would help a lot</p>



<a name="202367918"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/202367918" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#202367918">(Jun 29 2020 at 21:05)</a>:</h4>
<p>Just wanted to ping this issue to see if there's been any further progress on this or if there's any work that needs to be done by me to get the error handling project group started</p>



<a name="202382611"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/202382611" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#202382611">(Jun 30 2020 at 00:07)</a>:</h4>
<p>Hmm, I'm guessing we need someone with permission to create repos in rust-lang to set up a <code>wg-error-handling</code> repository for us. I only have permissions for the nursery org :(</p>



<a name="202385685"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/202385685" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> DPC <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#202385685">(Jun 30 2020 at 01:04)</a>:</h4>
<p>cc <span class="user-mention" data-user-id="116122">@simulacrum</span></p>



<a name="202385727"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/202385727" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#202385727">(Jun 30 2020 at 01:05)</a>:</h4>
<p><span class="user-mention" data-user-id="204346">@Ashley Mannix</span> I can definitely do that. Who should have access?</p>



<a name="202385782"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/202385782" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#202385782">(Jun 30 2020 at 01:06)</a>:</h4>
<p>I might prefer that we use project group terminology and try to write up an RFC for it, though I know that libs hasn't formally adopted that</p>



<a name="202385784"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/202385784" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#202385784">(Jun 30 2020 at 01:06)</a>:</h4>
<p>(WG is a loaded term)</p>



<a name="202385787"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/202385787" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#202385787">(Jun 30 2020 at 01:06)</a>:</h4>
<p>We could also just sidestep that and use rust-lang/error-handling for now</p>



<a name="202385867"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/202385867" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#202385867">(Jun 30 2020 at 01:09)</a>:</h4>
<p>Please feel free to ping me on rust-lang repo management</p>



<a name="202393771"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/202393771" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#202393771">(Jun 30 2020 at 04:08)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> myself and burntsushi at a minimum I would say</p>



<a name="202393795"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/202393795" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#202393795">(Jun 30 2020 at 04:08)</a>:</h4>
<p>beyond that I haven't really figured out a list of people to get involved. <span class="user-mention" data-user-id="119235">@David Tolnay</span> and <span class="user-mention" data-user-id="116155">@Jake Goulding</span> never replied so I'm not sure if they're interested</p>



<a name="202393912"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/202393912" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#202393912">(Jun 30 2020 at 04:10)</a>:</h4>
<p>also not sure if it's my place to even answer that question, so I'll defer to <span class="user-mention" data-user-id="204346">@Ashley Mannix</span> on this one</p>



<a name="202395253"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/202395253" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#202395253">(Jun 30 2020 at 04:45)</a>:</h4>
<p>Oh I definitely think it would be your say <span class="user-mention" data-user-id="220273">@Jane Lusby</span> I was just trying to see if I happened to have the right permissions to create a repository for you :) But it sounds like there’s a bit more process than I thought around it so it’s probably just as well I can’t just go spinning up <code>rust-lang</code> repos</p>



<a name="202395553"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/202395553" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#202395553">(Jun 30 2020 at 04:53)</a>:</h4>
<p>aah, fair, and ty</p>



<a name="202410847"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/202410847" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> XAMPPRocky <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#202410847">(Jun 30 2020 at 09:07)</a>:</h4>
<p><span class="user-mention" data-user-id="220273">@Jane Lusby</span> I would think the best way to make progress on this would be to write a proposal to the libs team outlining the scope and goals of the group. I've linked the project group RFC which should explain the steps towards creating a project group, though feel to ask me any questions about it. <a href="https://github.com/rust-lang/rfcs/blob/master/text/2856-project-groups.md">https://github.com/rust-lang/rfcs/blob/master/text/2856-project-groups.md</a></p>



<a name="202433593"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/202433593" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#202433593">(Jun 30 2020 at 13:22)</a>:</h4>
<p>that said, I don't see a reason not to create the repo for y'all to discuss the initial proposal on if that makes sense</p>



<a name="202433613"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/202433613" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#202433613">(Jun 30 2020 at 13:22)</a>:</h4>
<p>but yeah I think following something like the project group RFC makes sense</p>



<a name="202450821"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/202450821" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#202450821">(Jun 30 2020 at 15:20)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> no rush on the repo. <span class="user-mention" data-user-id="219696">@XAMPPRocky</span> ty,  I'll go ahead and create the project group proposal as a first step</p>



<a name="204322277"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/204322277" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#204322277">(Jul 18 2020 at 23:20)</a>:</h4>
<p>Finally found time to work on this, I'll have a project group proposal submitted soon <span class="user-mention" data-user-id="219696">@XAMPPRocky</span></p>



<a name="204322967"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/204322967" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#204322967">(Jul 18 2020 at 23:46)</a>:</h4>
<p><span class="user-mention" data-user-id="219696">@XAMPPRocky</span>  do you know where I should submit the charter?</p>



<a name="204323009"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/204323009" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#204323009">(Jul 18 2020 at 23:46)</a>:</h4>
<p><a href="https://gist.github.com/yaahc/c5dee6f9b58f2ca928dbdd92c51a049e">https://gist.github.com/yaahc/c5dee6f9b58f2ca928dbdd92c51a049e</a></p>



<a name="204330976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/204330976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> XAMPPRocky <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#204330976">(Jul 19 2020 at 03:39)</a>:</h4>
<p><span class="user-mention" data-user-id="220273">@Jane Lusby</span> I’d double check with someone on the team but I would think an a PR on the RFC repo would be an appropriate venue.</p>



<a name="204333333"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/204333333" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> XAMPPRocky <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#204333333">(Jul 19 2020 at 05:01)</a>:</h4>
<p>This might also be something to discuss at the libs team meeting. Because it seems like there's a lot of organisation work being or about to be done so it would be good to be in sync with that.</p>



<a name="204336200"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/204336200" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#204336200">(Jul 19 2020 at 06:52)</a>:</h4>
<p>an issue on the lang-team repo about a Major  Change Proposal might fit better.</p>



<a name="204337344"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/204337344" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> XAMPPRocky <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#204337344">(Jul 19 2020 at 07:30)</a>:</h4>
<p>I don't think it belongs under lang, it's not making language changes. I agree it would be better as a MCP but the libs team would have to adopt a major change proposal process first, unlike project groups we don't have an RFC for it yet.</p>



<a name="204337883"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/204337883" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#204337883">(Jul 19 2020 at 07:49)</a>:</h4>
<p>I’m going to have to try get properly up to speed on all the new ways teams are managing things... I’d be inclined to copy whatever lang does though. It sounds like we’re getting due for a dedicated repo 🙂</p>



<a name="204343714"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/204343714" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> XAMPPRocky <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#204343714">(Jul 19 2020 at 10:52)</a>:</h4>
<p><span class="user-mention" data-user-id="204346">@Ashley Mannix</span> I'd be happy to help with any of the org stuff.</p>



<a name="204453859"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/error%20handling/near/204453859" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/error.20handling.html#204453859">(Jul 20 2020 at 17:54)</a>:</h4>
<p>k, gonna use <a href="https://github.com/rust-lang/rfcs/blob/0fb14f27a48655fc52d58457440da2cbae7bb5b3/text/2797-project-ffi-unwind.md">https://github.com/rust-lang/rfcs/blob/0fb14f27a48655fc52d58457440da2cbae7bb5b3/text/2797-project-ffi-unwind.md</a> as an example and submit to the RFC repo</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>